
Day 24 的 75 題結論看起來乾淨: AI 強是因為題目在 pattern 範圍, 不是因為它會推理. 但有一個邏輯漏洞 — Blind 75 本身就是 StackOverflow / 教學部落格 / GitHub 題解出現最多次的那 75 題, 它可能是 pattern 密度最厚的那一塊, 樣本偏差太大, 結論不能外推.
要修這個漏洞, 加碼才有說服力. 挑兩套標準:
兩套最合適:
加起來新增 130 題 (129 可送判 + 1 新 PREMIUM 本地解). 三套合在一起去重後 200 題 LeetCode 清單, 寫過了 198 (134 送判 AC + 7 新 PREMIUM 本地解 + 57 跟 Blind 75 重疊的 AC 標籤已拿). 樣本從 75 翻到 2.7 倍.
65 / 65 全 AC. 挑三題講題型:
64 / 64 送判 AC, 1 本地解. 跟 Blind 75 / LC-75 重疊的 79 題不重複, 完全是「新資料點」. 挑四題講題型:
新 PREMIUM: #286 Walls and Gates — 多源 BFS, 全部門一次性入 queue 一波波擴散. 經典題, 本地 harness 跑過, 送不出去.
| 清單 | 新題 | 送判 | 一次 AC | pass rate |
|---|---|---|---|---|
| LC-75 | 65 | 65 | 65 | 100 % |
| NC150 | 64 | 64 | 63 | 98.4 % |
| 合計 | 129 | 129 | 128 | 99.2 % |
唯一的 WA 是 #50 Pow(x, n), 下一節講細節.
Agent 第一版寫的是標準 fast exponentiation:
double myPow(double x, int n) {
long long m = n;
if (m < 0) { x = 1 / x; m = -m; }
double res = 1;
while (m) {
if (m & 1) res *= x;
x *= x;
m >>= 1;
}
return res;
}
邏輯對、本機樣例全綠, 送上去 Wrong Answer. LeetCode 直接甩失敗測資:
Input: x = -0.9999999968539456, n = -1669585506
Output: 191.06373
Expected: 191.06370
差 3e-5. 不是演算法錯, 是浮點精度在 ~30 層平方累積後飄了. x 接近 -1、|n| 接近 2^31 這組邊界是 fast-pow 算法的經典死角.
Agent 自己讀 WA 訊息就改成 return pow(x, (double)n);, 一次 AC. 這題嚴格說不是「解法錯」, 是「選錯實作方式」 — 跟 Day 23 的 c500 「判題盲區」是同類: 樣例看不出來, 判題給具體 signal 之後一次補救.
註: 為什麼
std::pow就過: glibc 的pow(x, double)在內部用log(|x|) * y再exp, 搭配 FMA (fused multiply-add) 跟更高位的中間計算, 整體誤差比「乘 30 次」低得多. 不是「演算法比較高級」, 是「用了更精細的實作一次把乘法做完」. 這再次呼應 Day 24 的結論 — AI 不是推理出哪種好, 它只是換一個訓練資料裡出現更多的實作 (pow()是 C 幾十年的標配).
NC150 加進 Blind 75 沒碰到的教科書演算法, 這批題寫對的話, Day 24 的 pattern-density 說法才算真的站穩. 一次點名:
| 類別 | NC150 代表題 | 題型 |
|---|---|---|
| 最短路 | #743 Network Delay Time | Dijkstra |
| 有邊數限制最短路 | #787 Cheapest Flights | Bellman-Ford |
| 歐拉路徑 | #332 Reconstruct Itinerary | Hierholzer |
| 區間 DP | #312 Burst Balloons | 從裡往外枚舉最後動作 |
| 鏈序列 DP | #115 Distinct Subsequences | 子序列匹配計數 |
| 單調 deque | #239 Sliding Window Maximum | O(n) 滑動窗最大 |
| MST | #1584 Min Cost Connect Points | Prim's O(n²) |
| 多源 BFS (PREMIUM) | #286 Walls and Gates | 多源同時擴散 |
| Union-Find | #684 Redundant Connection | 第一條成環邊 |
| 迴圈偵測 | #287 Find Duplicate Number | Floyd 龜兔跑 (nums 當隱式鏈) |
這些題在教科書 (CLRS / 算競入門 / NeetCode 影片) 都有乾淨的對應模板, agent 認出題型後幾乎零摩擦寫出來. 沒有一題需要「推理出」解法, 全是「取出配方」.
三套刷下來, 真正卡住或 agent 自己踩坑的只有:
這兩個都不是「推理不夠」. 第 1 是數值, 第 2 是沒 reference. 兩種失敗模式都在 AI 推理能力範圍之外.